// ----------------------------------------------------------------------------
// gfx_device.cpp
// ----------------------------------------------------------------------------
#include "gfx_device.h"
#include <fw/base/core/macros.h>
#include <fw/base/core/debugconsole.h>
#if FW_TARGET_APPLE == 1
#include "./MacOSX/gfx_device_osx.h"
#endif // FW_TARGET_APPLE

namespace fw
{
    bool GfxDeviceConfig::SanityCheck() const
    {
        if (m_width==0 || m_height==0)
        {
            FW_WPRINTF(L"デバイスの解像度が正しく設定されていません.[%d,%d]\n", m_width, m_height);
            FW_BREAK();
            return false;
        }
        return true;
    }
    
    GfxDevice::GfxDevice(const GfxDeviceConfig& config)
    {
        m_impl = new GfxDeviceInternal(config);
    }
    
    GfxDevice::~GfxDevice()
    {
        FW_DELETE(m_impl);
    }
    
    bool GfxDevice::PollDevice()
    {
        FW_ASSERT(m_impl);
        return m_impl->PollDevice();
    }
    
    bool GfxDevice::Flip()
    {
        FW_ASSERT(m_impl);
        return m_impl->Flip();
    }
    
    
} // namespace fw


